const app = getApp()

Component({
  data: {
    tabBarVisible: true,
    active: 0,
    list: [
      // {
      //   text: '首页',
      //   url: '/pages/home/home',
      //   normal: '/images/resident/home.png',
      //   active: '/images/resident/home@highlight.png'
      // },
      {
        text: '物流',
        url: '/pages/logistics/logistics-tabs/logistics-tabs',
        normal: '/images/resident/logistics.png',
        active: '/images/resident/logistics@highlight.png'
      },
      {
        text: '服务单',
        url: '/pages/order/order',
        normal: '/images/resident/services.png',
        active: '/images/resident/services@highlight.png',
        info: Math.round(Math.random() * 10 + 1)
      },
      {
        text: '我的',
        url: '/pages/me/me',
        normal: '/images/resident/me.png',
        active: '/images/resident/me@highlight.png'
      }
    ]
  },

  methods: {
    onChange (e) {
      // if (!app.globalData.userInfo && (e.detail == 2 || e.detail == 3)) {
      //   return console.log(app.globalData.userInfo, '还未授权用户信息')
      // }
      this.setData({ active: e.detail })
      wx.switchTab({
        url: this.data.list[e.detail].url
      })
    },
    init () {
      const page = getCurrentPages().pop() // todo 获取当前页面栈,在调用实例的页面也可以直接设置   this.getTabBar().setData({ active: 3 })
      this.setData({
        active: this.data.list.findIndex(item => item.url === `/${page.route}`)
      })
    }
  }
})

// getApp 和 getCurrentPages          //todo kim-stamp 分别用来获取 App 实例和当前页面栈
// wx.switchTab(Object object)        跳转到 tabBar 页面，并关闭其他所有非 tabBar 页面
// wx.reLaunch(Object object)         关闭所有页面，打开到应用内的某个页面
// wx.redirectTo(Object object)       关闭当前页面，跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面
// wx.navigateTo(Object object)       保留当前页面，跳转到应用内的某个页面。但是不能跳到 tabbar 页面。使用 wx.navigateBack 可以返回到原页面。小程序中页面栈最多十层
// wx.navigateTo({
//   url: 'test?id=1',
//   events: {
//     // 为指定事件添加一个监听器，获取被打开页面传送到当前页面的数据
//     acceptDataFromOpenedPage: function(data) {
//       console.log(data)
//     },
//     someEvent: function(data) {
//       console.log(data)
//     }
//     ...
//   },
//   success: function(res) {
//     // 通过eventChannel向被打开页面传送数据
//     res.eventChannel.emit('acceptDataFromOpenerPage', { data: 'test' })
//   }
// })

// //test.js
// Page({
//   onLoad: function(option){
//     console.log(option.query)
//     const eventChannel = this.getOpenerEventChannel()
//     eventChannel.emit('acceptDataFromOpenedPage', {data: 'test'});
//     eventChannel.emit('someEvent', {data: 'test'});
//     // 监听acceptDataFromOpenerPage事件，获取上一页面通过eventChannel传送到当前页面的数据
//     eventChannel.on('acceptDataFromOpenerPage', function(data) {
//       console.log(data)
//     })
//   }
// })

// wx.navigateBack(Object object)
// 关闭当前页面，返回上一页面或多级页面。可通过 getCurrentPages 获取当前的页面栈，决定需要返回几层

// EventChannel
// 基础库 2.7.3 开始支持，低版本需做兼容处理。

// 页面间事件通信通道

// 方法
// EventChannel.emit(string eventName, any args)
// 触发一个事件

// EventChannel.on(string eventName, EventCallback fn)
// 持续监听一个事件

// EventChannel.once(string eventName, EventCallback fn)
// 监听一个事件一次，触发后失效

// EventChannel.off(string eventName, EventCallback fn)
// 取消监听一个事件。给出第二个参数时，只取消给出的监听函数，否则取消所有监听函数
